#ifndef AVALON_TESTTIMER_HPP
#define AVALON_TESTTIMER_HPP
#include "Avalon/Threading/Timer.hpp"

namespace Avalon {
namespace Threading {

  /*! \class TestTimer
   *  \brief Simulates a timer used for testing purposes.
   */
  class TestTimer : public Timer {
    public:

      //! Constructs a TestTimer.
      TestTimer();

      virtual ~TestTimer();

      virtual void Start();

      virtual void Cancel(Out<bool> expired);

      virtual void SetExpiredSlot(const ExpiredSlot& slot);

    private:
      ExpiredSlot m_expiredSlot;
  };
}
}

#endif // AVALON_TESTTIMER_HPP
